home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
Classes
/
RCString
/
archt.m
next >
Wrap
Text File
|
1995-06-12
|
1KB
|
63 lines
// testing of cheesy file descriptor type
// object archiving.
#import <stdio.h>
#import <stdlib.h>
#import <signal.h>
#import <fcntl.h>
#import <string.h>
#import <sys/time.h>
#import <RCString.h>
int
main(int c, char **v)
{
RCString *oString, *oString2;
// cmd string1 string2 archive_file_name
if (c != 4) {
fprintf(stderr, "usage: %s string1 string2 archive_file_name\n", *v);
exit(1);
}
oString = [RCString newFromString:v[1]];
oString2 = [RCString newFromString:v[2]];
if (oString && oString2) {
char bvBuf[1024];
int iArchiveFD = open(*(v + 3), O_RDWR|O_CREAT, 0666);
if (iArchiveFD < 0) {
perror("opening archive file");
exit(2);
}
#ifdef NeXT
printf("first RCString object in class \"%s\"\n", [oString name]);
#endif
printf("string 1: \"%s\"\n", [oString data]);
printf("string 2: \"%s\"\n", [oString2 data]);
[oString storeOn:iArchiveFD];
if (lseek(iArchiveFD, 0, L_SET) >= 0) {
// seeked back to start of file. Read in object.
[oString2 readFrom:iArchiveFD];
} else {
// seek failed
perror("seeking in archive file after object write");
}
printf("after de-archiving:\n");
printf("string 1: \"%s\"\n", [oString data]);
printf("string 2: \"%s\"\n", [oString2 data]);
[oString free];
[oString2 free];
close(iArchiveFD);
gets(bvBuf); // pause for check of file, etc.
} else {
fprintf(stderr, "newFromString: failure\n");
return(1);
}
return(0);
}